昨天我們學完了函式的基礎用法以及講解,今天要寫的是進階用法。
會這樣分兩天是因為我覺得有一點難,可以給大家消化一下。
func ac (x: Int) 是定義函式的寫法;func 函式名稱(參數名稱: 參數型別)
這邊很容易搞混,連我自己都搞混了........這邊要特別注意!
var ainput = 3
func ac(x: Int) -> Int{
var k = x * 2
if k < 10{
k = ac(x: k)
return k
}else{
return k
}
}
let a = ac(x: ainput)
print("Answer is",a)
先let a = ac(x: ainput) 所以就會去call ac函式,接著因為乘2 k然然未達10,所以回去再call一次ac。
var ainput = 3
func ac(x: Int) -> Int{
var k = x * 2
if k < 10{
k = ac2(x: k)
return k
}else{
return k
}
}
func ac2(x: Int) -> Int{
let k = x * 2
return k
}
let a = ac(x: ainput)
print("Answer is",a)
這邊一樣先call ac 但沒超過10 所以回去call ac2 接著會回傳值回傳ac ,接著return回let a 那一行,就結束了。
var ainput = 3
func ac(x: Int) {
var k = x * 2
if k < 10{
print("<10")
}else{
print(">10")
}
}
let a = ac(x: ainput)
這邊你可以直接看let那一行,這時傳入什麼值也不重要,因為也沒有回傳值,但這邊你可以看到就是一個呼叫function的動作,判斷是否大於10。
swift 中的func是可以設定為預設參數值的,也就是說你就不需要有輸入值了,每次呼叫函式都會有固定的輸入值。
func ac(x: Int = 1) {
print(x)
}
ac()
這樣子就會印出a了
我們有時候輸入參數值時,並非每次都輸入一個值,偶爾也會輸入兩個值等等,這時候就要使用多參數值輸入。
func ac(n1: Int = 1 , n2 : Int = 2) {
print(n1 + n2)
}
ac()
當然,三個也沒有問題
func ac(n1: Int = 1 , n2 : Int = 2 , n3: Int = 100) {
print(n1 + n2 + n3)
}
ac()
今天講的主要還是比較基本的函數使用的方法,還有很多我沒有講到的,有興趣建議多學一點,不過我講的基本上也都可以用了,也就是說剩下的建議你可以要用再去查就好。
本文參考資料:本站大佬 通靈亡